package com.example.kotlinstudy.bean

/**
 * 实体类  ，定义类
 *针对每一个属性 kotlin都会产生一个field
 *Kotlin会自动生成set  get方法
 */
class Player {
    var name = "jack"    // 不是可空类型一定要给一个值
        get() = field.capitalize()    //自己也可以写set get 方法覆盖默认的， 而他封装的有一个field表示 你自己的属性
        set(value) {
            field = value.trim()
        }

    //不能是var
    val rolledValue
        get() = (1..6).shuffled().first()   //这个时候 field就不需要了，因为不需要field的值（1到6随机数字取第一个）

    var value1: String? = null //可空类型也可以使用覆盖 get
        get() {
            return "$field".plus("hello")
        }


    var words: String? = "hello"
    fun saySomething() {
        words
            ?.also {   //对一个原始对象一系列的操作
                print("hello ${it.toUpperCase()}")
            }
            ?.also {
                print("hello1 ${it.toUpperCase()}")
            }
    }
}